﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using MJM.RPP.EntidadesNegocio;
using MJM.SPP.EntidadesNegocio;
using MJM.SCA.EntidadesNegocio;
using MJM.Principal;

namespace wRegPadron.frmOpciones
{
    public partial class WebUserControl1 : System.Web.UI.UserControl
    {
        private static String usuario;
        private static int Id=0;
        public static PersonaE objPersonaE;
        private static bool IsMuni=false;
        public void SetPersona(PersonaE obj)
        {
            objPersonaE = obj;
        }

        private void InsertarLog(String prm2, String prm3)
        {
            string ipusuario = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            if (ipusuario == null)
                ipusuario = "";

            LogTramiteEN objLogTramiteEN = new LogTramiteEN();
            string mes, dia;
            if (DateTime.Now.Month < 10)
                mes = "0" + DateTime.Now.Month.ToString();
            else mes = DateTime.Now.Month.ToString();

            if (DateTime.Now.Day < 10)
                dia = "0" + DateTime.Now.Day.ToString();
            else dia = DateTime.Now.Day.ToString();
            objLogTramiteEN.LOGAW_chFECMOD = DateTime.Now.Year.ToString() + mes + dia;
            objLogTramiteEN.LOGAW_chFECREG = DateTime.Now.ToShortDateString();
            objLogTramiteEN.LOGAW_chHORREG = DateTime.Now.ToShortTimeString();
            objLogTramiteEN.LOGAW_chIPCLIEN = ipusuario;
            objLogTramiteEN.LOGAW_chPARDOS = prm2;
            objLogTramiteEN.LOGAW_chPARUNO = usuario;
            objLogTramiteEN.LOGAW_chPARTRE = prm3;
            objLogTramiteEN.LOGAW_inHORMOD = DateTime.Now.Hour;
            objLogTramiteEN.LOGAW_chNOMAPL = "Padrón";
            MediadorCN.GetLogTramite().Insertar(objLogTramiteEN);
        }

        protected void Page_Load(object sender, EventArgs e)
        {            
            if (!IsPostBack)
            {
                int tipo = Convert.ToInt32(Session["muni"]);
                if (tipo == 1)
                {
                    IsMuni = true;
                }
                usuario = Session["usuario"].ToString();
                SubOpcionEN objSubOpcionEN = MediadorCN.GetSubOpcion().ObtenerTexto("MenuContrasenia");
                lblTitulo.Text = objSubOpcionEN.SUBOPT_chNOMSOP;
                lblDescripcion.Text = objSubOpcionEN.SUBOPT_chDESSOP;
            }
        }

        protected void btnGuardarNuevaContrasenia_Click(object sender, EventArgs e)
        {
            if (!IsMuni)
            {
                if (txtContraseniaNueva.Text == txtContraseniaConfirm.Text)
                {
                    if (MediadorCN.GetUsuario().ConfirmaContrasenia(usuario, txtContraseniaActual.Text))
                    {
                        UsuarioE objUsuarioEN = new UsuarioE();
                        objUsuarioEN.Eliminado = 1;
                        objUsuarioEN.Usuario = usuario;
                        objUsuarioEN.Pass = txtContraseniaNueva.Text;
                        MediadorCN.GetUsuario().ActualizaEstado(objUsuarioEN);
                        Session.Remove("Pass");
                        Session.Add("Pass", txtContraseniaNueva.Text);
                        InsertarLog("Cambio de contraseña", "Correcto");
                        lblErrorContrasenia.Text = "La contraseña ha sido cambiada correctamente.";
                    }
                    else
                    {
                        lblErrorContrasenia.Text = "La contraseña actual ingresada no es correcta.";
                        InsertarLog("Cambio de contraseña", "La contraseña actual ingresada no es correcta.");
                    }
                }
                else
                {
                    lblErrorContrasenia.Text = "La contraseña de confirmación no coincide con la nueva contraseña.";
                    InsertarLog("Cambio de contraseña", "La contraseña de confirmación no coincide con la nueva contraseña.");
                }
            }
            else
            {
                if (txtContraseniaNueva.Text == txtContraseniaConfirm.Text)
                {
                    if (MediadorCN.GetUsuario().Encripta(txtContraseniaActual.Text) == Session["Pass"].ToString())
                    {
                        MediadorCN.GetUsuario().CambiarClaveTramite(usuario, txtContraseniaNueva.Text);
                        Session.Remove("Pass");
                        Session.Add("Pass", txtContraseniaNueva.Text);
                        lblErrorContrasenia.Text = "La contraseña ha sido cambiada correctamente.";
                        InsertarLog("Cambio de contraseña", "Correcto");
                    }
                    else
                    {
                        lblErrorContrasenia.Text = "La contraseña actual ingresada no es correcta.";
                        InsertarLog("Cambio de contraseña", "La contraseña actual ingresada no es correcta.");
                    }
                }
                else
                {
                    lblErrorContrasenia.Text = "La contraseña de confirmación no coincide con la nueva contraseña.";
                    InsertarLog("Cambio de contraseña", "La contraseña de confirmación no coincide con la nueva contraseña.");
                }
            }
        }
    }
}